﻿#ifndef __AF_MEDIA_H__
#define __AF_MEDIA_H__

#include "AF_Define.h"

namespace AF
{
	class Media;
}
typedef AF::Media			AF_CMedia;

#include "AF_Player.h"
#include "AF_Bundle.h"

namespace AF
{
	/// 媒体管理基类
	class _ABSTRACT Media
	{
	public:
		Media(){}
		virtual ~Media(){}

	public:
		virtual bool		InitMedia() = 0;
		virtual bool		DestroyMedia() = 0;

		// 播放器函数
		/**
		 *  @name 播放器函数
		 */
		virtual AF_CPlayer*	CreatePlayer(Bundle* pArgs = NULL) = 0;
		virtual bool		DeletePlayer(AF_CPlayer* pPlayer) = 0;


		// 音频函数
		/**
		 *  @name 音频函数
		 */
		virtual AF_CAudio*	CreateAudio()
					{return NULL;}
		virtual void		DeleteAudio()
					{return;}
	};
}

#endif